package com.xr.blog.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xr.blog.pojo.BlogComment;

import java.util.List;

/**
 * 评论表
 *
 * @author XRJ
 * @email 1033835209@qq.com
 * @date 2020-07-16 12:37:49
 */
public interface BlogCommentService extends IService<BlogComment> {

    /**
     * 查询最新的评论
     * @param count 需要查询的评论数量
     * @param showCheck 是否查询待审核的评论
     * @return
     */
    List<BlogComment> findLatestComments(Integer count, boolean showCheck);

    /**
     * 分页查询当前文章的所有评论
     * @param page 分页信息
     * @param articleId 文章ID
     * @return
     */
    IPage<BlogComment> findPageByArticleId(Page<BlogComment> page, Long articleId);

    /**
     * 分页查询评论
     * @param page
     * @param wrapper
     * @return
     */
    IPage<BlogComment> findCommentsByPage(Page<BlogComment> page, QueryWrapper wrapper);

    /**
     * 根据ID查询评论信息
     * @param id
     * @return
     */
    BlogComment findCommentById(Long id);


    /**
     * 根据文章ID删除该文章下所有的相关评论和回复
     * @param articleIds
     * @return
     */
    void deleteByArticleIds(List<Long> articleIds);


    /**
     * 清除缓存
     */
    void clearCache();
}

